home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 2000 August: Tool Chest / Dev.CD Aug 00 TC Disk 2.toast / pc / sample code / quicktime / goodies / chromakeymovie / chromakeymovie.h < prev    next >
Encoding:
C/C++ Source or Header  |  2000-06-23  |  4.2 KB  |  178 lines

  1. /*
  2.     File:        ChromaKeyMovie.h
  3.  
  4.     Contains:    
  5.  
  6.     Written by: Jason Hodges-Harris    
  7.  
  8.     Copyright:    Copyright © 1995-1999 by Apple Computer, Inc., All Rights Reserved.
  9.  
  10.                 You may incorporate this Apple sample source code into your program(s) without
  11.                 restriction. This Apple sample source code has been provided "AS IS" and the
  12.                 responsibility for its operation is yours. You are not permitted to redistribute
  13.                 this Apple sample source code as "Apple sample source code" after having made
  14.                 changes. If you're going to re-distribute the source, we require that you make
  15.                 it clear in the source that the code was descended from Apple sample source
  16.                 code, but that you've made changes.
  17.  
  18.     Change History (most recent first):
  19.                 7/28/1999    Karl Groethe    Updated for Metrowerks Codewarror Pro 2.1
  20.                 
  21.  
  22. */
  23.  
  24. #ifndef __CHROMAPPHEADER__
  25. #define __CHROMAPPHEADER__
  26.  
  27.  
  28. // Mac Toolbox protos
  29.  
  30. #ifndef __MOVIES__
  31. #include <Movies.h>
  32. #endif
  33.  
  34. #ifndef __QUICKDRAW__
  35. #include <QuickDraw.h>
  36. #endif
  37.  
  38. #ifndef __TYPES__
  39. #include <Types.h>
  40. #endif
  41.  
  42. #ifndef __WINDOWS__
  43. #include <Windows.h>
  44. #endif
  45.  
  46.  
  47. // Define menubar constants
  48.  
  49. #define        rMenuBar        128
  50.  
  51. #define     mApple            128
  52. #define     iAbout            1
  53.  
  54. #define        mFile            129
  55. #define        iOpen            1
  56. #define     iClose            2
  57. #define     iQuit            4
  58.  
  59. #define        mEdit            130
  60. #define     iUndo            1
  61. #define     iCut            3
  62. #define        iCopy            4
  63. #define     iPaste            5
  64.  
  65. #define        mMode            131
  66. #define        iKeyColor        1
  67. #define        iMovieBack        3
  68. #define        iMovieFront        4
  69. #define        iTransparent    6        
  70. #define        iGraphix        7
  71. #define        iModifier        8
  72.  
  73. #define        mOptions        132
  74. #define        iEveryFrame        1
  75. #define        iLoopMovie        2
  76.  
  77.  
  78. // Constant definitions
  79.  
  80. #define        kSleep            1L        // Used in wait next event
  81. #define        rGenWindow        128
  82. #define        rAboutBox        128
  83. #define        rGenAlert        129
  84. #define        rGenWarning        130
  85.  
  86. #define        rQTmessages        128
  87. #define        rErrMessages    129
  88.  
  89. #define        rBackGroundPict    128        // PICT resource
  90. #define        kappDefErr        -999    // application return error
  91.  
  92.  
  93. // available transfer modes
  94.  
  95. enum transferModes
  96. {
  97.     transparentMode = 1,
  98.     graphix,
  99.     modifierTrax
  100. };
  101.  
  102. // Application document structure
  103.  
  104.  
  105. #if GENERATINGPOWERPC
  106. #pragma options align=mac68k
  107. #endif
  108.  
  109. struct MovieDoc
  110. {
  111.     MovieController        theController;
  112.     Movie                theMovie;
  113.     long                theModifierIndex;        // QuickTime 2.1 or later only
  114.     FSSpec                theFileSpec;
  115.     short                theMovieResID;
  116. };
  117.  
  118. typedef struct MovieDoc MovieDoc, *MovieDocPtr, **MovieDocHndl;
  119.  
  120. #if GENERATINGPOWERPC
  121. #pragma options align=reset
  122. #endif
  123.  
  124. // doevent.c prototypes
  125.  
  126. void             DoEvent (EventRecord *EventPtr);        // process event
  127. void             HandleMouseDown(EventRecord *eventPtr);// handle mouse down events
  128. void             DoDiskEvt(EventRecord *eventPtr);        // handle disk inserted events
  129.  
  130. // eventloop.c prototypes
  131.  
  132. void             EventLoop (void);                        // main program event loop
  133.  
  134.  
  135. // menu.c prototypes
  136.  
  137. void             MenuBarInit (void);                                    // init menubar
  138. void            DoAdjustMenus(void);                                // adjust valid menus
  139. void            DoMenuCommand(long menuResult);                        // perform menu selection
  140. void            DoAdjustFileMenu(void);            // Adjust file menu
  141. void            DoAdjustEditMenu(void);            // Adjust Edit menu
  142. void            DoAdjustKeyMode(void);            // Adjust Chroma key menu
  143. void             DoAdjustOptions(Boolean playAllFrames, Boolean loopMovie);    // Adjust Options menu
  144.  
  145.  
  146. // start.c prototypes
  147.  
  148. void            InitGlobals(void);                            // initialise global variables
  149. void            TestforQuickTimeVersion(void);                // test for QuickTime & version
  150.  
  151.  
  152. // moviecontrol.c prototypes
  153.  
  154. Boolean            PlayMovieChroma(void);
  155. OSErr            LoadOneMovie(MovieDocHndl theDocH);
  156. void            TransparentColor(void);
  157. Boolean            SetPlayAllFrames(Boolean playAllFrames);
  158. Boolean            SetLoopMovie(Boolean loopMovie);
  159. void             TransparentKeyMode(WindowPtr theWindow);
  160. void             ModifierTrackMode(WindowPtr theWindow);
  161. void             VideoGraphicsMode(WindowPtr theWindow, Boolean SetVGM);
  162. OSErr            DestroyModifierTrack(MovieDocHndl theDocH);
  163.  
  164.  
  165. // windows.c prototypes
  166.  
  167. long             DisplayAlert (short dialogID,short errStrID,short StrIDindex);
  168. void            DragSelWind(WindowPtr window,Point mouseloc);    // drag window
  169. void            DoGoAwayWind(WindowPtr window,Point mouseLoc);    // window close button selected
  170. void            DisposeWindowDocs (WindowPtr window);            // dispose window documents
  171. void            DoWindUpdate(WindowPtr window);        // update dirty open window
  172. CWindowPtr        OpenCWindow(void);
  173.  
  174.  
  175.  
  176. #endif  // __CHROMAPPHEADER__
  177.  
  178.